Motion compensated inter-frame coding has been widely adopted in various coding standards, such as MPEG-1/2/4 and H.261/H.263/H.264/AVC. VP8 is a recent motion compensated video codec (encoder-decoder) being adapted for some software, hardware, platform and publish environments. The VP8 coding algorithm is similar to H.264 Baseline Profile. However, VP8 is tailored to simplify encoding and decoding complexity while delivering about the same performance as the H.264 Baseline Profile. During compression process, coding noises may arise due to lossy operations applied such as quantization. The coding artifacts may become noticeable in the reconstructed video data, especially at or near block boundaries. In order to alleviate the visibility of coding artifacts, a technique called in-loop filter has been used in newer coding systems such as H.264/AVC and VP8. The in-loop filter process applies filtering across block boundaries to smooth large transitions at and near block boundaries caused by coding noises while retaining image sharpness. Therefore, the in-loop filter process is often referred to as de-blocking, de-block filtering or loop filtering.
As mentioned above, in-loop filtering is used to alleviate the coding artifacts which are more visible at or around block boundaries. Therefore, heavier filtering is applied to block boundaries that suffer more severe block boundary distortion. Furthermore, a loop filter level is often selected for the frame according to a system performance criterion, such as the maxim PSNR (peak signal to noise ratio). In conventional encoding system such as VP8, the loop filter level for the frame is iteratively determined by trying out all filter candidates and selecting one achieving the maximum PSNR. In order to reduce required computations, the iterative process is often performed on a partial frame. Nevertheless, the iterative loop filter level determination still requires substantial computations and results in a great amount of data access. Furthermore, the iterative loop filter level determination also causes long latency in encoding process. Therefore, it is desirable to develop a method and system that can determine the loop filter level without iterative process.